home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / GMS / GMSDev / Source / C / Blitter / Moire.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-14  |  1.8 KB  |  77 lines

  1. /* Name: Moire (Converted from Amiga Graphics Inside and Out)
  2. ** Dice: dcc -l0 -mD dpk.o Moire.c -o Moire
  3. **
  4. ** Generates some nice patterns.  Hold LMB to exit.
  5. */
  6.  
  7. #include <proto/dpkernel.h>
  8.  
  9. BYTE *ProgName      = "Moire";
  10. BYTE *ProgAuthor    = "Paul Manias";
  11. BYTE *ProgDate      = "January 1998";
  12. BYTE *ProgCopyright = "DreamWorld Productions (c) 1996-1998.  Freely distributable.";
  13. BYTE *ProgShort     = "Generates some nice patterns.";
  14.  
  15. struct GScreen *screen;
  16. struct JoyData *joydata;
  17.  
  18. void Moire(void);
  19.  
  20. LONG palette[6] = { PALETTE_ARRAY,4,0x000000,0x505050,0x707070,0xF0F0F0 };
  21.  
  22. /***********************************************************************************/
  23.  
  24. void main(void)
  25. {
  26.   if (screen = InitTags(NULL,
  27.      TAGS_SCREEN,    NULL,
  28.        GSA_BitmapTags, NULL,
  29.        BMA_Palette,    palette,
  30.        TAGEND,         NULL,
  31.      TAGEND)) {
  32.  
  33.      Display(screen);
  34.  
  35.      if (joydata = Init(Get(ID_JOYDATA),NULL)) {
  36.  
  37.         Moire();
  38.  
  39.      Free(joydata);
  40.      }
  41.   Free(screen);
  42.   }
  43. }
  44.  
  45. /***********************************************************************************/
  46.  
  47. void Moire(void)
  48. {
  49.   WORD xm,ym,i;
  50.  
  51. loop:
  52.  
  53.     Clear(screen->Bitmap);
  54.     xm = FastRandom(screen->Width);        /* Coordinates of Centre Point */
  55.     ym = FastRandom(screen->Height);
  56.  
  57.     for (i=0; i < screen->Height; i++) {
  58.        Query(joydata);
  59.        if (joydata->Buttons & JD_LMB) return;
  60.  
  61.        DrawLine(screen->Bitmap, xm, ym, 0, i, i%(2+1),0xffffffff);
  62.        DrawLine(screen->Bitmap, xm, ym, screen->Width,i, i%(2+1),0xffffffff);
  63.     }
  64.  
  65.     for (i=0; i < screen->Width; i++) {
  66.        Query(joydata);
  67.        if (joydata->Buttons & JD_LMB) return;
  68.        DrawLine(screen->Bitmap, xm, ym, i, 0, i%(2+1),0xffffffff);
  69.        DrawLine(screen->Bitmap, xm, ym, i, screen->Height, i%(2+1),0xffffffff);
  70.     }
  71.  
  72.     WaitTime(100);
  73.  
  74.   goto loop;
  75. }
  76.  
  77.